package com.hakim.wfb.dao;

import com.hakim.wfb.admin.params.customer.GetCustomerOrderListPageParam;
import com.hakim.wfb.admin.params.customer.SendCustomerOrderParameter;
import com.hakim.wfb.admin.result.admin.CustomerOrderListView;
import com.hakim.wfb.bean.OrderList;
import com.hakim.wfb.customer.params.order.GetOrderListParameter;
import com.hakim.wfb.customer.params.order.SignOrderParameter;
import com.hakim.wfb.customer.result.order.OrderListView;
import com.hkfs.fundamental.database.PageDaoBase;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface OrderListDao extends PageDaoBase<OrderList, Long> {

    /**
     * @param param
     * @return
     */
    List<OrderListView> list(GetOrderListParameter param);

    /**
     * @param param
     * @return
     */
    List<CustomerOrderListView> getCustomerOrderList(GetCustomerOrderListPageParam param);

    /**
     * @param param
     * @return
     */
    int getCustomerOrderListCount(GetCustomerOrderListPageParam param);

    /**
     * @param param
     */
    void adminSend(SendCustomerOrderParameter param);

    /**
     * @param orderno
     */
    void cancelOrder(@Param("orderId") String orderno);

    /**
     *
     * @param parameter
     */
    void adminSign(SignOrderParameter parameter);

}
